package org.itheima.hello数据结构.堆heap;

public class 解析 {}

    //堆heap（heap）是一种满足特定条件的完全二叉树，主要可分为两种类型
    //小顶堆（min heap）：任意节点的值<=其子节点的值。
    //大顶堆（max heap）：任意节点的值>=其子节点的值。


//堆作为完全二叉树的一个特例，具有以下特性。
//
//最底层节点靠左填充，其他层的节点都被填满。
//我们将二叉树的根节点称为“堆顶”，将底层最靠右的节点称为“堆底”。
//对于大顶堆（小顶堆），堆顶元素（根节点）的值是最大（最小）的。

//许多编程语言提供的是优先队列（priority queue），这是一种抽象的数据结构，定义为具有优先级排序的队列。




// 堆的存储与表示¶
//“二叉树”章节讲过，完全二叉树非常适合用数组来表示。由于堆正是一种完全二叉树，因此我们将采用数组来存储堆。



//优先队列：堆通常作为实现优先队列的首选数据结构，其入队和出队操作的时间复杂度均为O
// ，而建堆操作为
// ，这些操作都非常高效。
//堆排序：给定一组数据，我们可以用它们建立一个堆，然后不断地执行元素出堆操作，从而得到有序数据。然而，我们通常会使用一种更优雅的方式实现堆排序，详见“堆排序”章节。
//获取最大的
// 个元素：这是一个经典的算法问题，同时也是一种典型应用，例如选择热度前 10 的新闻作为微博热搜，选取销量前 10 的商品等。